4.1.3 判断素数
质数概念:质数是指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数。2是唯一一个既是偶数又是质数的数字
1.判断一个数是不是素数
function isPrinme(n) {
if(n == 0 || n==1){
return false;
}
if(n==2){
return true;
}
for(var i=2;i<Math.sqrt(n);i++){
if(n%i == 0){
return false;
}
}
return true;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
2.输出n内的所有素数
function get_primes(n){
var x,arr=[];
for(x=1;x<=n;x++){
arr.push(x);
}
return arr.filter(function(num){
if (num === 1) {
return false;
}
for(var i=2;i<=Math.sqrt(num);i++){
if (num%i === 0){
return false;
}
}
return true;
});
}
get_primes(100)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
- 另一种写法
function prinmeN(n) {
var flag=0;
var result=[];
if(n == 0 || n==1){
result=[];
}else if(n==2){
result=[2];
} else if (n==3 || n==4){
result=[2,3]
}else{
result.push(2,3);
for(var i=5;i<=n;i++){
for(var j=2;j<=Math.sqrt(i);j++){
if(i%j == 0){
flag=1;
break;
}else{
flag=0;
}
}
if(flag==0){
result.push(i);
}
}
}
return result;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28